#include <iostream>
#include <fstream>

using namespace std;

/*
    1. C++将读取文件 --> 封装成类 ifstream
       C++将写入文件 --> 封装成类 ofstream
    2. 读取文件
        创建对象 ： ifstream in("文件名"); 新建对象in并打开文件
                   ifstream in； in.open("文件名"); 新建对象in，使用open打开文件
        读取文件： in.read(buf, 1024); 读取1024字节，包括换行符
                  in.getline(buf, 1024); 读取文本行，忽略换行符
                  in.getline(buf, 1024,字符); 读取文本行，遇到字符时停止
                  in.get(*buf); 读取一个字符
                  in.get(buf, 1024,字符); 读取字符,最多读取1023个字符，遇到字符时停止
        seekg(pos); 移动文件指针到pos位置
        seekg(pos,ios::beg); 在ios::beg位置，移动文件指针pos字节
            ios::beg 表示文件开头   ios::cur 移动文件指针当前位置   ios::end 移动文件指针文件末尾
            pos是负数时，表示向前pos个字节(不能在开头的时候使用)
        关闭文件： in.close(); 关闭in打开的文件；一个对象只能打开一个文件，打开多个的时候会将前面打开的文件关闭
        
*/

int main()
{
    // 创建对象 读取文件1.txt
    // ifstream in("1.txt");
    ifstream in;
    
    // 创建对象 读取文件1.txt
    in.open("1.txt");
    
    // char buf[1024] = {0};
    // in.read(buf, 1024);
   
    string buf;
    getline(in, buf,'d');

    // char buf[1024] = {0};
    // in.get(*buf);
    // in.get(buf, 1024,'l');
    cout << buf << endl;

    // in.seekg(15);
    in.seekg(9,ios::cur); // 中文乱码是因为中文字符占3个字节
    getline(in ,buf);
    cout << buf << endl;

    in.close();
    return 0;
}